1.5.1节练习
练习1.20:在网站http://www.informit.com/title/o321714113上,第1章的代码目录中包含了头文件Sales_item.h。将它拷贝到你自己的工作目录(源码文件所在的文件夹)中。用它编写一个程序,读取一组书籍销售记录,将每条记录打印到标准输出上。
出题思路:练习如何使用其他人定义的类来创建、使用对象。
解答:
#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item book;
std::cout << "请输入销售记录: " << std::endl;
while (std::cin >> book){
std::cout << "ISBN、售出本数、销售额和平均售价为" << book << std::endl;
}
return 0;
}
练习1.21:编写程序,读取两个ISBN相同的Sales_item对象,输出它们的和。
出题思路:类对象的更复杂的使用,利用类接口进行运算。
解答:
#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item trans1 trans2;
std::cout << "请输入两条ISBN相同的销售记录:" << std::endl;
std::cin >> trans1 >> trans2;
if (compareIsbn(trans1 trans2))
std::cout << "汇总信息:ISBN、售出本数、销售额和平均售价为" << trans1 + trans2 << std:endl;
else
std::cout << "两条销售记录的ISBN不同" << std::endl;
return 0;
}
练习1.22:编写程序,读取多个具有相同ISBN的销售记录,输出所有记录的和。
出题思路:练习在处理数据流的过程中“状态”(是否是相同的ISBN)的保存和变迁。
解答:
#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item total trans;
std::cout << "请输入几条ISBN相同的销售记录:" << std::endl;
if (std::cin >> total){
while (std::cin >> trans)
if (compareIsbn(total trans)) // ISBN相同
total = total + trans;
else { // ISBN不同
std::cout << "ISBN不同" << std::endl;
return -1;
}
std::cout << "汇总信息:ISBN、售出本数、销售额和平均售价为" << total << std::endl;
}
else {
std::cout << "没有数据" << std::endl;
return -1;
}
return 0;
}
普通的冒险故事提示您:看后求收藏(卧龙小说网http://www.wolongxs.com),接着再看更方便。
好书推荐:《我的剧本世界在自主运行》、《我是舰娘》、《我的师妹是妖女》、《交错世界之学院都市》、《认清现实后,她们开始追夫火葬场》、《好徒儿你就饶了为师伐》、